Conventional language processing receives user speech and processes the received voice signals into text, typically represented as an alphanumeric string (text) of characters in a target language for which the language processing application is configured. Language processing may be employed in a variety of contexts by supplementing or replacing conventional keyboard input with a speech recognition component or module for converting speech into text. Speech recognition capabilities therefore accompany other production applications for providing an alternate input path to allow spoken commands and data as an alternative to manual keyboard entry. The speech recognition component executes as a language processing application in communication with the production application for which they perform the speech recognition.
Language processing applications therefore often operate in conjunction with production applications for interpreting spoken, rather than typed, commands and messages from a user. In a typical language processing context, the language processing application converts speech received from a user to text corresponding to the spoken words. The text is then employed as input to the production application in a similar manner as if entered via a keyboard.
The language processing application interprets spoken words by employing a language model. The language model computes, for a given sequence of words, a likelihood of a successive word in the sequence. A classing function assists generation of the language model by grouping words that tend to occur in similar contexts, i.e. following certain other words. Classing functions that group words according to their usage in the corresponding language processing application are said to be optimized, as the optimization results in a high likelihood of predicting the next word from a sequence of words
Various approaches to automatic processing of human languages typically attempt to deduce appropriate classes for words and make proper assignments. For example, a reasonable class is days of a week which for English might contain words: Monday, Tuesday, Sunday, and etc. It is of course possible to determine such a classing manually for a given language. However, word classing is not unique; for example, it might be more desirable to put “Saturday” and “Sunday” into a separate class for some applications. It thus quickly becomes intractable for permuting all such possibilities. In language models, classing is applied to sequences, or clusters, or words. The sequence of N words is referred to as a cluster size, typically denoting the cluster size as an N-gram. Cluster sizes of 2 and 3 (bigram and trigram) are common as rapid growth of processing demands impacts larger cluster sizes.